home *** CD-ROM | disk | FTP | other *** search
/ Gamers Delight 2 / Gamers Delight 2.iso / Aminet / game / wb / WBTRIS_1_54.lha / WBTRIS_1.54 / Source / Name.c < prev    next >
C/C++ Source or Header  |  1993-03-16  |  4KB  |  136 lines

  1. #include "WBTRIS.h"
  2.  
  3. #define GD_Gadget00     0
  4. #define GDX_Gadget00    0
  5. #define Project0_CNT    1
  6.  
  7. extern struct Screen         *myscreen;
  8. extern APTR                   VisualInfo;
  9. struct Window         *Project0Wnd = NULL;
  10. struct Gadget         *Project0GList = NULL;
  11. struct Gadget         *Project0Gadgets[1];
  12. struct Gadget         *g = NULL;
  13. UWORD                  Project0Left = 68;
  14. UWORD                  Project0Top = 127;
  15. UWORD                  Project0Width = 225;
  16. UWORD                  Project0Height = 61;
  17. UBYTE                 *Project0Wdt = NULL; /*(UBYTE *)"Give me your name";*/
  18.  
  19. extern struct TextAttr helvetica13;
  20.  
  21. UWORD Project0GTypes[] = {
  22.     STRING_KIND
  23. };
  24.  
  25. struct NewGadget Project0NGad[] = {
  26.     29, 17, 156, 21, (UBYTE *)"Enter you name", NULL, GD_Gadget00, PLACETEXT_ABOVE ,NULL, NULL
  27. };
  28.  
  29. ULONG Project0GTags[] = {
  30.     (GTST_MaxChars), 25, (TAG_DONE)
  31. };
  32.  
  33. int OpenProject0Window( void )
  34. {
  35.     struct NewGadget     ng;
  36.     UWORD                lc, tc;
  37.     UWORD                offx = myscreen->WBorLeft, offy = myscreen->WBorTop + myscreen->RastPort.TxHeight + 1;
  38.  
  39.     if ( ! ( g = CreateContext( &Project0GList )))
  40.         return( 1L );
  41.  
  42.     for( lc = 0, tc = 0; lc < Project0_CNT; lc++ ) {
  43.  
  44.         CopyMem((char * )&Project0NGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  45.  
  46.         ng.ng_VisualInfo = VisualInfo;
  47.         ng.ng_TextAttr   = &helvetica13;
  48.         ng.ng_LeftEdge  += offx;
  49.         ng.ng_TopEdge   += offy;
  50.  
  51.         Project0Gadgets[ lc ] = g = CreateGadgetA((ULONG)Project0GTypes[ lc ], g, &ng, ( struct TagItem * )&Project0GTags[ tc ] );
  52.  
  53.         while( Project0GTags[ tc ] ) tc += 2;
  54.         tc++;
  55.  
  56.         if ( NOT g )
  57.         return( 2L );
  58.     }
  59.  
  60.     if ( ! ( Project0Wnd = OpenWindowTags( NULL,
  61.                     WA_Left,          Project0Left,
  62.                     WA_Top,           Project0Top,
  63.                     WA_Width,         Project0Width,
  64.                     WA_Height,        Project0Height + offy,
  65.                     WA_IDCMP,         STRINGIDCMP | IDCMP_REFRESHWINDOW | IDCMP_ACTIVEWINDOW,
  66.                     WA_Flags,         WFLG_SMART_REFRESH | WFLG_ACTIVATE,
  67.                     WA_Gadgets,       Project0GList,
  68.                     WA_Title,         Project0Wdt,
  69.                     TAG_DONE )))
  70.         return( 4L );
  71.  
  72.     GT_RefreshWindow( Project0Wnd, NULL );
  73.  
  74.     return( 0L );
  75. }
  76.  
  77. void CloseProject0Window( void )
  78. {
  79.     if ( Project0Wnd        ) {
  80.         CloseWindow( Project0Wnd );
  81.         Project0Wnd = NULL;
  82.     }
  83.  
  84.     if ( Project0GList      ) {
  85.         FreeGadgets( Project0GList );
  86.         Project0GList = NULL;
  87.     }
  88. }
  89.  
  90.  
  91.  
  92.  
  93. void AskForName(void)
  94. {
  95.    BOOL                 Done = FALSE;
  96.    struct IntuiMessage *imsg = NULL;
  97.    extern struct RastPort *rp;
  98.    extern short          MAINXOFFSET;
  99.    extern short          boxxsize;
  100.    extern short          boxysize;
  101.    extern BOOL           UseLace;
  102.    extern char           Name[25];
  103.  
  104.  
  105.    OpenProject0Window();
  106.  
  107.    while(!Done)
  108.    {
  109.       Wait(1L << Project0Wnd->UserPort->mp_SigBit);
  110.  
  111.       while (imsg = (struct IntuiMessage *)GetMsg(Project0Wnd->UserPort)) {
  112.          switch(imsg->Class) {
  113.             case IDCMP_ACTIVEWINDOW:
  114.                ActivateGadget(Project0Gadgets[0], Project0Wnd, NULL);
  115.                break;
  116.             case IDCMP_REFRESHWINDOW:
  117.                GT_BeginRefresh(Project0Wnd);
  118.                GT_EndRefresh(Project0Wnd, TRUE);
  119.                break;
  120.  
  121.             case IDCMP_GADGETUP:
  122.                if (g->GadgetID == GD_Gadget00)
  123.                   if (strlen(((struct StringInfo *)g->SpecialInfo)->Buffer) != 0) {
  124.                      strcpy(Name, ((struct StringInfo *)g->SpecialInfo)->Buffer);
  125.                      Done = TRUE;
  126.                   } else
  127.                      ActivateGadget(Project0Gadgets[0], Project0Wnd, NULL);
  128.                break;
  129.          }
  130.          ReplyMsg((struct Message *) imsg);
  131.       }
  132.    }
  133.  
  134.    CloseProject0Window();
  135. }
  136.